home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / man / cat.1 / sc.1 < prev    next >
Text File  |  1995-07-25  |  87KB  |  1,849 lines

  1.  
  2.  
  3.  
  4.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           sc - spreadsheet calculator
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.           sssscccc [ ----cccc ] [ ----mmmm ] [ ----nnnn ] [ ----rrrr ] [ ----xxxx ] [ _f_i_l_e ]
  13.  
  14.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.           The spreadsheet calculator _s_c is based on rectangular tables
  16.           much like a financial spreadsheet.  When invoked it presents
  17.           you with a table organized as rows and columns of cells.  If
  18.           invoked without a _f_i_l_e argument, the table is initially
  19.           empty.  Otherwise _f_i_l_e is read in (see the _G_e_t command
  20.           below).  Each cell may have associated with it a numeric
  21.           value, a label string, and/or an expression (formula) which
  22.           evaluates to a numeric value or label string, often based on
  23.           other cell values.
  24.  
  25.           For a on-line tutorial, type the command:
  26.  
  27.                sc /usr/local/lib/sc-6.21/tutorial.sc
  28.  
  29.           To print a quick reference card, type the command:
  30.  
  31.                scqref | [your_printer_commmand]
  32.  
  33.      OOOOPPPPTTTTIIIIOOOONNNNSSSS
  34.           ----cccc   Start the program with the recalculation being done in
  35.                column order.
  36.  
  37.           ----mmmm   Start the program with automatic recalculation
  38.                disabled.  The spreadsheet will be recalculated only
  39.                when the ``@'' command is used.
  40.  
  41.           ----nnnn   Start the program in quick numeric entry mode (see
  42.                below).
  43.  
  44.           ----rrrr   Start the program with the recalculation being done in
  45.                row order (default option).
  46.  
  47.           ----xxxx   Cause the _G_e_t and _P_u_t commands (see below) to encrypt
  48.                and decrypt data files.
  49.  
  50.           ----RRRR   Start the program with automatic newline action set to
  51.                increment the row (see below).
  52.  
  53.           ----CCCC   Start the program with automatic newline action set to
  54.                increment the column (see below).
  55.  
  56.           All of these options can be changed with the ^_T and _S
  57.           commands (see below) while _s_c is running.  Options specified
  58.           when _s_c is invoked override options saved in the data file.
  59.  
  60.  
  61.  
  62.  
  63.      Page 1                                           (printed 3/9/94)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  71.  
  72.  
  73.  
  74.         GGGGeeeennnneeeerrrraaaallll IIIInnnnffffoooorrrrmmmmaaaattttiiiioooonnnn
  75.           The screen is divided into four regions.  The top line is
  76.           for entering commands and displaying cell values.  The
  77.           second line is for messages from _s_c.  The third line and the
  78.           first four columns show the column and row numbers, from
  79.           which are derived cell addresses, e.g.  _A_0 for the cell in
  80.           column A, row 0.  Note that column names are case-
  81.           insensitive: you can enter _A_0 or _a_0.
  82.  
  83.           The rest of the screen forms a window looking at a portion
  84.           of the table.  The total number of display rows and columns
  85.           available, hence the number of table rows and columns
  86.           displayed, is set by _c_u_r_s_e_s(3) and may be overridden by
  87.           setting the LINES and COLUMNS environment variables,
  88.           respectively.
  89.  
  90.           The screen has two cursors: a cell cursor, indicated by a
  91.           highlighted cell and a ``<'' on the screen, and a character
  92.           cursor, indicated by the terminal's hardware cursor.  The
  93.           cell and character cursors are often the same.  They differ
  94.           when you type a command on the top line.
  95.  
  96.           If a cell's numeric value is wider than the column width
  97.           (see the _f command), the cell is filled with asterisks.  If
  98.           a cell's label string is wider than the column width, it is
  99.           truncated at the start of the next non-blank cell in the
  100.           row, if any.
  101.  
  102.           Cursor control commands and row and column commands can be
  103.           prefixed by a numeric argument which indicates how many
  104.           times the command is to be executed.  You can type ^_U before
  105.           a repeat count if quick numeric entry mode is enabled or if
  106.           the number is to be entered while the character cursor is on
  107.           the top line.
  108.  
  109.           Commands which use the terminal's control key, such as ^_N,
  110.           work both when a command is being typed and when in normal
  111.           mode.
  112.  
  113.         CCCChhhhaaaannnnggggiiiinnnngggg OOOOppppttttiiiioooonnnnssss
  114.  
  115.           ^^^^TTTT_o  Toggle options.  This command allows you to switch the
  116.                state of one option selected by _o.  A small menu lists
  117.                the choices for _o when you type ^_T.  The options
  118.                selected are saved when the data and formulas are saved
  119.                so that you will have the same setup next time you
  120.                enter the spreadsheet.
  121.  
  122.                aaaa    Automatic Recalculation.  When set, each change in
  123.                     the spreadsheet causes the entire spreadsheet be
  124.                     recalculated.  Normally this is not noticeable,
  125.                     but for very large spreadsheets, it may be faster
  126.  
  127.  
  128.  
  129.      Page 2                                           (printed 3/9/94)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  137.  
  138.  
  139.  
  140.                     to clear automatic recalculation mode and update
  141.                     the spreadsheet via explicit ``@'' commands.
  142.                     Default is automatic recalculation on.
  143.  
  144.                cccc    Current cell highlighting.  If enabled, the
  145.                     current cell is highlighted (using the terminal's
  146.                     standout mode, if available) in addition to being
  147.                     marked by the cell cursor.
  148.  
  149.                eeee    External function execution.  When disabled,
  150.                     external functions (see @_e_x_t() below) are not
  151.                     called.  This saves a lot of time at each screen
  152.                     update.  External functions are disabled by
  153.                     default.  If disabled, and external functions are
  154.                     used anywhere, a warning is printed each time the
  155.                     screen is updated, and the result of @_e_x_t() is the
  156.                     value from the previous call, if any, or a null
  157.                     string.
  158.  
  159.                llll    Autolabeling.  If enabled, using the define
  160.                     command (/d) causes a label to be automatically
  161.                     generated in the cell to the left of the defined
  162.                     cell.  This is only done if the cell to the left
  163.                     is empty.  Default is enabled.
  164.  
  165.                nnnn    Quick numeric entry.  If enabled, a typed digit is
  166.                     assumed to be the start of a numeric value for the
  167.                     current cell, not a repeat count, unless preceded
  168.                     by ^_U.  The cursor controls (^_P, ^_N, ^_B, ^_F) in
  169.                     this mode will end a numeric entry.
  170.  
  171.                tttt    Top line display.  If enabled, the name and value
  172.                     of the current cell is displayed on the top line.
  173.                     If there is an associated label string, the first
  174.                     character of the string value is ``|'' for a
  175.                     centered string, ``<'' for a leftstring or ``>''
  176.                     for a rightstring (see below), followed by
  177.                     "_s_t_r_i_n_g" for a constant string or {_e_x_p_r} for a
  178.                     string expression.  A constant string may be
  179.                     preceeded with a backslash (`\').  In this case
  180.                     the constant string will be used as a ``wheel'' to
  181.                     fill a column, e.g. "\-" for a line in a column,
  182.                     and "\Yeh " for "Yeh Yeh Ye".  If the cell has a
  183.                     numeric value, it follows as [_v_a_l_u_e], which may be
  184.                     a constant or expression.
  185.  
  186.                xxxx    Encryption.  See the ----xxxx option.
  187.  
  188.                $$$$    Dollar prescale.  If enabled, all numeric
  189.                     ccccoooonnnnssssttttaaaannnnttttssss (not expressions) which you enter are
  190.                     multipled by 0.01 so you don't have to keep typing
  191.                     the decimal point if you enter lots of dollar
  192.  
  193.  
  194.  
  195.      Page 3                                           (printed 3/9/94)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  203.  
  204.  
  205.  
  206.                     figures.
  207.  
  208.                rrrr    Newline action.  This option toggles between three
  209.                     cases.  The default is no action.  If this option
  210.                     is used once, after each command which is
  211.                     terminated by a newline character is completed,
  212.                     the current cell will be moved down one row.  If
  213.                     this option is used again, after each command
  214.                     which is terminated by a newline character is
  215.                     completed, the current cell will be moved right
  216.                     one column.  Another use of this option will
  217.                     restore the default action.
  218.  
  219.                zzzz    Set newline action limits.  This option sets
  220.                     limits to the newline action option above.  When
  221.                     this option is invoked, the row and column of the
  222.                     current cell are remembered.  If a later newline
  223.                     action would take the current cell to the right of
  224.                     the remembered column, then the current cell is
  225.                     instead moved to the first column of the next row.
  226.                     If a newline action would take the current cell
  227.                     below the remembered row, then the current cell is
  228.                     instead moved to the top row of the next column.
  229.  
  230.                The quick numeric entry, newline action and set newline
  231.                action limits options can be combined to allow very
  232.                quick entry of large amounts of data.  If all the data
  233.                to be entered is in a single row or column then setting
  234.                the quick numeric entry and the appropriate newline
  235.                action will allow the numbers to be entered without any
  236.                explicit commands to position the current cell or enter
  237.                a number.
  238.  
  239.                If the data entry involves several entries in each row
  240.                for many rows, then setting the quick numeric entry
  241.                option, setting the newline action to move right after
  242.                each entry and setting the newline action limits on the
  243.                last column on which data should be entered will allow
  244.                the data to entered quickly.  If necessary, columns
  245.                which do not need data to be entered can be hidden with
  246.                the zzzz command.  Similar arrangements can be made for
  247.                entering several rows of data in each column.
  248.  
  249.           SSSS    Set options.  This command allows you to set various
  250.                options.  A small menu lists the options that cannot be
  251.                changed through ^_T above.
  252.  
  253.                bbbbyyyyrrrroooowwwwssss/bbbbyyyyccccoooollllssss
  254.                     Specify the order cell evaluation when updating.
  255.                     These options also affect the order in which cells
  256.                     are filled (see /_f) and whether a row or column is
  257.                     cleared by an _x command.
  258.  
  259.  
  260.  
  261.      Page 4                                           (printed 3/9/94)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  269.  
  270.  
  271.  
  272.                iiiitttteeeerrrraaaattttiiiioooonnnnssss=_n
  273.                     Set the maximum number of recalculations before
  274.                     the screen is displayed again. _I_t_e_r_a_t_i_o_n_s is set
  275.                     to 10 by default.
  276.  
  277.                ttttbbbbllllssssttttyyyylllleeee=_s
  278.                     Control the output of the _T command.  _s can be: 0000
  279.                     (default) to give colon delimited fields, with no
  280.                     _t_b_l control lines; ttttbbbbllll to give colon delimited
  281.                     fields, with _t_b_l(1) control lines; llllaaaatttteeeexxxx to give a
  282.                     _L_a_T_e_X tabular environment; ssssllllaaaatttteeeexxxx to give a _S_L_a_T_e_X
  283.                     (_S_c_a_n_d_i_n_a_v_i_a_n _L_a_T_e_X) tabular environment; tttteeeexxxx to
  284.                     give a _T_e_X simple tabbed alignment with ampersands
  285.                     as delimiters; and ffffrrrraaaammmmeeee to give a tblstyle output
  286.                     for FrameMaker.
  287.  
  288.                Other _S_e_t options are normally used only in _s_c data
  289.                files since they are available through ^_T.  You can
  290.                also use them interactively
  291.  
  292.                aaaauuuuttttooooccccaaaallllcccc/!!!!aaaauuuuttttooooccccaaaallllcccc
  293.                     Set/clear auto recalculation mode.
  294.  
  295.                nnnnuuuummmmeeeerrrriiiicccc/!!!!nnnnuuuummmmeeeerrrriiiicccc
  296.                     Set/clear numeric mode.
  297.  
  298.                pppprrrreeeessssccccaaaalllleeee/!!!!pppprrrreeeessssccccaaaalllleeee
  299.                     Set/clear numeric prescale mode.
  300.  
  301.                eeeexxxxttttffffuuuunnnn/!!!!eeeexxxxttttffffuuuunnnn
  302.                     Enable/disable external functions.
  303.  
  304.                cccceeeellllllllccccuuuurrrr/!!!!cccceeeellllllllccccuuuurrrr
  305.                     Set/clear current cell highlighting mode.
  306.  
  307.                ttttoooopppprrrroooowwww/!!!!ttttoooopppprrrroooowwww
  308.                     Set/clear top row display mode.
  309.  
  310.                rrrrnnnnddddiiiinnnnffffiiiinnnniiiittttyyyy/!!!!rrrrnnnnddddiiiinnnnffffiiiinnnniiiittttyyyy
  311.                     default: round-to-even (banker's round), *.5 will
  312.                     round to the closest even number; doing a 'set
  313.                     rndinfinity' will round *.5 up to the next integer
  314.                     (rounding to infinity).
  315.  
  316.                ccccrrrraaaaccccttttiiiioooonnnn=_n
  317.                     Set the newline action.  _n can be: 0000 (default) to
  318.                     give no action; 1111 to move down after each entry;
  319.                     or 2222 to move right after each entry.
  320.  
  321.                rrrroooowwwwlllliiiimmmmiiiitttt=_n
  322.                     Set the remembered limit for the maximum row below
  323.                     which the current cell will be moved to the top of
  324.  
  325.  
  326.  
  327.      Page 5                                           (printed 3/9/94)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  335.  
  336.  
  337.  
  338.                     the next column if the newline action is set to
  339.                     move the current cell down.  _n can be ----1111 (default)
  340.                     to disable this facility.
  341.  
  342.                ccccoooolllllllliiiimmmmiiiitttt=_n
  343.                     Set the remembered limit for the maximum column to
  344.                     the right of which the current cell will be moved
  345.                     to the left of the next row if the newline action
  346.                     is set to move the current cell right.  _n can be
  347.                     ----1111 (default) to disable this facility.
  348.  
  349.         CCCCuuuurrrrssssoooorrrr CCCCoooonnnnttttrrrroooollll CCCCoooommmmmmmmaaaannnnddddssss
  350.  
  351.           ^^^^PPPP   Move the cell cursor up to the previous row.
  352.  
  353.           ^^^^NNNN   Move the cell cursor down to the next row.
  354.  
  355.           ^^^^BBBB   Move the cell cursor backward one column.
  356.  
  357.           ^^^^FFFF   Move the cell cursor forward one column.
  358.  
  359.           hhhh,,,, jjjj,,,, kkkk,,,, llll
  360.                If the character cursor is not on the top line, these
  361.                are alternate, _v_i-compatible cell cursor controls
  362.                (left, down, up, right).  Space is just like l (right).
  363.  
  364.           HHHH,,,, JJJJ,,,, KKKK,,,, LLLL
  365.                If the character cursor is not on the top line, these
  366.                move the cursor by half pages (left, down, up, right).
  367.  
  368.           ^^^^HHHH   If the character cursor is not on the top line, ^_H is
  369.                the same as ^_B.
  370.  
  371.           SSSSPPPPAAAACCCCEEEE
  372.                If the character cursor is not on the top line, the
  373.                space bar is the same as ^_F.
  374.  
  375.           TTTTAAAABBBB  If the character cursor is on the top line, TAB starts
  376.                a range (see below).  Otherwise, it is the same as ^_F.
  377.  
  378.           AAAArrrrrrrroooowwww KKKKeeeeyyyyssss
  379.                The terminal's arrow keys provide another alternate set
  380.                of cell cursor controls if they exist and are supported
  381.                in the appropriate _t_e_r_m_c_a_p entry.  Some terminals have
  382.                arrow keys which conflict with other control key codes.
  383.                For example, a terminal might send ^_H when the back
  384.                arrow key is pressed.  In these cases, the conflicting
  385.                arrow key performs the same function as the key
  386.                combination it mimics.
  387.  
  388.           ^^^^    Move the cell cursor up to row 0 of the current column.
  389.  
  390.  
  391.  
  392.  
  393.      Page 6                                           (printed 3/9/94)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  401.  
  402.  
  403.  
  404.           ####    Move the cell cursor down to the last valid row of the
  405.                current column.
  406.  
  407.           0000    Move the cell cursor backward to column A of the
  408.                current row.  This command must be prefixed with ^_U if
  409.                quick numeric entry mode is enabled.
  410.  
  411.           $$$$    Move the cell cursor forward to the last valid column
  412.                of the current row.
  413.  
  414.           bbbb    Scan the cursor backward (left and up) to the previous
  415.                valid cell.
  416.  
  417.           wwww    Scan the cursor forward (right and down) to the next
  418.                valid cell.
  419.  
  420.           ^^^^EEEE_d  Go to end of range.  Follow ^_E by a direction indicator
  421.                such as ^_P or _j.  If the cell cursor starts on a non-
  422.                blank cell, it goes in the indicated direction until
  423.                the last non-blank adjacent cell.  If the cell cursor
  424.                starts on a blank cell, it goes in the indicated
  425.                direction until the first non-blank cell.  This command
  426.                is useful when specifying ranges of adjacent cells (see
  427.                below), especially when the range is bigger than the
  428.                visible window.
  429.  
  430.           gggg    Go to a cell.  _s_c prompts for a cell's name, a regular
  431.                expression surrounded by quotes, or a number.  If a
  432.                cell's name such as _a_e_1_2_2 or a the name of a defined
  433.                range is given, the cell cursor goes directly to that
  434.                cell.  If a quoted regular expression such as " _T_a_x
  435.                _T_a_b_l_e " or " ^_J_a_n [_0-_9]*$ " is given, _s_c searches for a
  436.                cell containing a string matching the regular
  437.                expression.  See _r_e_g_e_x(_3) or _e_d(_1) for more details on
  438.                the form of regular expressions.  If a number is given,
  439.                _s_c will search for a cell containing that number.
  440.                Searches for either strings or numbers proceed forward
  441.                from the current cell, wrapping back to a0 at the end
  442.                of the table, and terminate at the current cell if the
  443.                string or number is not found.  You may also go to a
  444.                cell with an ERROR (divide by zero, etc in this cell)
  445.                or INVALID (references a cell containing an ERROR).
  446.                _g _e_r_r_o_r will take you to the next ERROR, while
  447.                _g _i_n_v_a_l_i_d take you to the next invalid.  The last _g
  448.                command is saved, and can be re-issued by entering
  449.                _g<_r_e_t_u_r_n>.
  450.  
  451.         CCCCeeeellllllll EEEEnnnnttttrrrryyyy aaaannnndddd EEEEddddiiiittttiiiinnnngggg CCCCoooommmmmmmmaaaannnnddddssss
  452.           Cells can contain both a numeric value and a string value.
  453.           Either value can be the result of an expression, but not
  454.           both at once, i.e. each cell can have only one expression
  455.           associated with it.  Entering a valid numeric expression
  456.  
  457.  
  458.  
  459.      Page 7                                           (printed 3/9/94)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  467.  
  468.  
  469.  
  470.           alters the cell's previous numeric value, if any, and
  471.           replaces the cell's previous string expression, if any,
  472.           leaving only the previously computed constant label string.
  473.           Likewise, entering a valid string expression alters the
  474.           cell's the previous label string, if any, and replaces the
  475.           cell's previous numeric expression, if any, leaving only the
  476.           previously computed constant numeric value.
  477.  
  478.           ====    Enter a numeric constant or expression into the current
  479.                cell.  _s_c prompts for the expression on the top line.
  480.                The usual way to enter a number into a cell is to type
  481.                ``='', then enter the number in response to the prompt
  482.                on the top line.  The quick numeric entry option,
  483.                enabled through the ----nnnn option or ^_T command, shows the
  484.                prompt when you enter the first digit of a number (you
  485.                can skip typing ``='').
  486.  
  487.           <<<<    Enter a label string into the current cell to be
  488.                flushed left against the left edge of the cell.
  489.  
  490.           """"    Enter a label string into the current cell to be
  491.                centered in the column.
  492.  
  493.           >>>>    Enter a label string into the current cell to be
  494.                flushed right against the right edge of the cell.
  495.  
  496.           FFFF    Enter a format string into the current cell.  This
  497.                format string overrides the precision specified with
  498.                the ``f'' command.  The format only applies to numeric
  499.                values.  The following characters can be used to build
  500.                a format string:
  501.  
  502.                ####    Digit placeholder.  If the number has fewer digits
  503.                     on either side of the decimal point than  there
  504.                     are `#' characters in the format, the extra `#'
  505.                     characters are ignored.  The number is rounded to
  506.                     the number of digit placeholders as there are to
  507.                     the right of the decimal point.  If there are more
  508.                     digits in the number than there are digit
  509.                     placeholders on the left side of the decimal
  510.                     point, then those digits are displayed.
  511.  
  512.                0000    Digit placeholder.  Same as for `#' except that
  513.                     the number is padded with zeroes on either side of
  514.                     the decimal point.  The number of zeroes used in
  515.                     padding is determined by the number of digit
  516.                     placeholders after the `0' for digits on the left
  517.                     side of the decimal point and by the number of
  518.                     digit placeholders before the `0' for digits on
  519.                     the right side of the decimal point.
  520.  
  521.                ....    Decimal point.  Determines how many digits are
  522.  
  523.  
  524.  
  525.      Page 8                                           (printed 3/9/94)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  533.  
  534.  
  535.  
  536.                     placed on the right and left sides of the decimal
  537.                     point in the number.  Note that numbers smaller
  538.                     than 1 will begin with a decimal point if the left
  539.                     side of the decimal point contains only a `#'
  540.                     digit placeholder.  Use a `0' placeholder to get a
  541.                     leading zero in decimal formats.
  542.  
  543.                %%%%    Percentage.  For each `%' character in the format,
  544.                     the actual number gets multiplied by 100 (only for
  545.                     purposes of formatting -- the original number is
  546.                     left unmodified) and the `%' character is placed
  547.                     in the same position as it is in the format.
  548.  
  549.                ,,,,    Thousands separator.  The presence of a `,' in the
  550.                     format (multiple commas are treated as one) will
  551.                     cause the number to be formatted with a `,'
  552.                     separating each set of three digits in the integer
  553.                     part of the number with numbering beginning from
  554.                     the right end of the integer.
  555.  
  556.                \\\\    Quote.  This character causes the next character
  557.                     to be inserted into the formatted string directly
  558.                     with no special interpretation.
  559.  
  560.                EEEE---- EEEE++++ eeee---- eeee++++
  561.                     Scientific format.  Causes the number to formatted
  562.                     in scientific notation.  The case of the `E' or
  563.                     `e' given is preserved.  If the format uses a `+',
  564.                     then the sign is always given for the exponent
  565.                     value.  If the format uses a `-', then the sign is
  566.                     only given when the exponent value is negative.
  567.                     Note that if there is no digit placeholder
  568.                     following the `+' or `-', then that part of the
  569.                     formatted number is left out.  In general, there
  570.                     should be one or more digit placeholders after the
  571.                     `+' or `-'.
  572.  
  573.                ;;;;    Format selector.  Use this character to separate
  574.                     the format into two distinct formats.  The format
  575.                     to the left of the `;' character will be used if
  576.                     the number given is zero or positive.  The format
  577.                     to the right of the `;' character is used if the
  578.                     number given is negative.
  579.  
  580.                Some example formats are integer (``0'' or ``#''),
  581.                fixed (``0.00''), percentage (``0%'' or ``0.00%''),
  582.                scientific (``0.00E+00''), and currency
  583.                (``$#,0.00;($#,0.00)'').
  584.  
  585.           Strings you enter must start with ".  You can leave off the
  586.           trailing " and _s_c will add it for you.  You can also enter a
  587.           string expression by backspacing over the opening " in the
  588.  
  589.  
  590.  
  591.      Page 9                                           (printed 3/9/94)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  599.  
  600.  
  601.  
  602.           prompt.
  603.  
  604.           eeee    Edit the value associated with the current cell.  This
  605.                is identical to ``='' except that the command line
  606.                starts out containing the old numeric value or
  607.                expression associated with the cell.  The editing in
  608.                this mode is vi-like.
  609.  
  610.                ^^^^hhhh   Move back a character
  611.  
  612.                ++++    Forward through history (neat) (same as j)
  613.  
  614.                ----    Backward through history (neat) (same as k)
  615.  
  616.                EEEESSSSCCCC  Done editing
  617.  
  618.                TTTTAAAABBBB  Mark && append a range (ex: A0:A0)
  619.                     TAB, move around within a range; TAB, append range
  620.                     string.
  621.  
  622.                CCCCRRRR   Save
  623.  
  624.                $$$$    Goto last column
  625.  
  626.                ....    Insert current dot buffer
  627.  
  628.                ////    Search for a string in the history
  629.                     EEEESSSSCCCC  edit the string you typed
  630.                     CCCCRRRR   search
  631.                     ^^^^hhhh   backspace
  632.  
  633.                0000    Goto column 0
  634.  
  635.                DDDD    Delete to send
  636.  
  637.                IIII    Insert at column 0; ESC revert back to edit mode
  638.  
  639.                RRRR    Replace mode; ESC revert back to edit mode
  640.  
  641.                XXXX    Delete the char to the left
  642.  
  643.                aaaa    Append after cursor; ESC revert back to edit mode
  644.  
  645.                bbbb    Move back a word
  646.  
  647.                cccc    Change mode; ESC revert back to edit mode
  648.  
  649.                dddd    Delete ...
  650.                     bbbb    back word
  651.                     ffff    forward (right)
  652.                     hhhh    back char
  653.                     llll    forward
  654.  
  655.  
  656.  
  657.      Page 10                                          (printed 3/9/94)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  665.  
  666.  
  667.  
  668.                     tttt    delete forward up to a given char (next char
  669.                     typed)
  670.                     wwww    delete next word forward
  671.  
  672.                ffff    Find the next char typed
  673.  
  674.                hhhh    Move left a char
  675.  
  676.                iiii    Insert before cursor; ESC revert back to edit mode
  677.  
  678.                jjjj    Forward through history (neat) (same as +)
  679.  
  680.                kkkk    Backward through history (neat) (same as -)
  681.  
  682.                llll    Move right a char
  683.  
  684.                nnnn    Continue search
  685.  
  686.                qqqq    Stop editing
  687.  
  688.                rrrr    Replace char
  689.  
  690.                tttt    Goto a char
  691.  
  692.                uuuu    Undo
  693.  
  694.                wwww    Forward a word
  695.  
  696.                xxxx    Delete the current char (moving to the right)
  697.  
  698.           EEEE    Edit the string associated with the current cell.  This
  699.                is identical to ``<'', ``"'', or ``>'' except that the
  700.                command line starts out containing the old string value
  701.                or expression associated with the cell.  SEE eeee ABOVE.
  702.  
  703.           To enter and edit a cell's number part, use the ``='' and _e
  704.           commands.  To enter and edit a cell's string part, use the
  705.           ``<'', ``"'', ``>'', and _E commands.  See the sections below
  706.           on numeric and string expressions for more information.
  707.  
  708.           xxxx    Clear the current cell.  Deletes the numeric value,
  709.                label string, and/or numeric or string expression.  You
  710.                can prefix this command with a count of the number of
  711.                cells on the current row to clear.  The current column
  712.                is used if column recalculation order is set.  Cells
  713.                cleared with this command may be recalled with any of
  714.                the _p_u_l_l commands (see below).
  715.  
  716.           mmmm    Mark a cell to be used as the source for the _c_o_p_y
  717.                command.
  718.  
  719.           cccc    Copy the last marked cell to the current cell, updating
  720.  
  721.  
  722.  
  723.      Page 11                                          (printed 3/9/94)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  731.  
  732.  
  733.  
  734.                row and column references in its numeric or string
  735.                expression, if any.
  736.  
  737.           ++++    If not in numeric mode, add the current numeric
  738.                argument (default 1) to the value of the current cell.
  739.                In numeric mode, ``+'' introduces a new numeric
  740.                expression or value, the same as ``=''.
  741.  
  742.           ----    If not in numeric mode, subtract the current numeric
  743.                argument (default 1) from the value of the current
  744.                cell.  In numeric mode, ``-'' introduces a new,
  745.                negative, numeric expression or value, like ``=''.
  746.  
  747.           RRRREEEETTTTUUUURRRRNNNN
  748.                If you are not editing a cell (top line is empty),
  749.                pressing RETURN will make _s_c enter insert mode. At this
  750.                point you may type any valid command or press EEEESSSSCCCC once
  751.                to edit.
  752.  
  753.         FFFFiiiilllleeee CCCCoooommmmmmmmaaaannnnddddssss
  754.  
  755.           GGGG    Get a new database from a file.  If encryption is
  756.                enabled, the file is decrypted before it is loaded into
  757.                the spreadsheet.
  758.  
  759.           PPPP    Put the current database into a file.  If encryption is
  760.                enabled, the file is encrypted before it is saved.
  761.  
  762.           WWWW    Write a listing of the current database into a file in
  763.                a form that matches its appearance on the screen.  This
  764.                differs from the _P_u_t command in that its files are
  765.                intended to be reloaded with _G_e_t, while _W_r_i_t_e produces
  766.                a file for people to look at.  Hidden rows or columns
  767.                are not shown when the data is printed.
  768.  
  769.           TTTT    Write a listing of the current database to a file, but
  770.                include delimiters suitable for processing by the _t_b_l,
  771.                _L_a_T_e_X, or _T_e_X table processors.  The delimiters are
  772.                controlled by the _t_b_l_s_t_y_l_e option.  See _S_e_t above.  The
  773.                delimiters are are a colon (:) for style _0 or _t_b_l and
  774.                an ampersand (&) for style _l_a_t_e_x or _t_e_x.
  775.  
  776.           With the _P_u_t, _W_r_i_t_e, and _T_a_b_l_e commands, the optional range
  777.           argument writes a subset of the spreadsheet to the output
  778.           file.
  779.  
  780.           With the _W_r_i_t_e and _T_a_b_l_e commands, if you try to write to
  781.           the last file used with the _G_e_t or _P_u_t commands, or the file
  782.           specified on the command line when _s_c was invoked, you are
  783.           asked to confirm that the (potentially) dangerous operation
  784.           is really what you want.
  785.  
  786.  
  787.  
  788.  
  789.      Page 12                                          (printed 3/9/94)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  797.  
  798.  
  799.  
  800.           The three output commands, _P_u_t, _W_r_i_t_e, and _T_a_b_l_e, can pipe
  801.           their (unencrypted only) output to a program.  To use this
  802.           feature, enter ``| program'' to the prompt asking for a
  803.           filename.  For example, to redirect the output of the _W_r_i_t_e
  804.           command to the printer, you might enter ``| lpr -p''.
  805.  
  806.           MMMM    Merge the database from the named file into the current
  807.                database.  Values and expressions defined in the named
  808.                file are read into the current spreadsheet overwriting
  809.                the existing entries at matching cell locations.
  810.  
  811.           RRRR    Run macros.  Since _s_c files are saved as ASCII files,
  812.                it is possible to use them as primitive macro
  813.                definition files.  The _R_u_n command makes this easier.
  814.                It's like the _M_e_r_g_e command, but prints a saved path
  815.                name as the start of the filename to merge in.  The
  816.                string to use is set with the _D_e_f_i_n_e command.  To write
  817.                macros, you must be familiar with the file format
  818.                written by the _P_u_t command.  This facility is still
  819.                primitive and could be much improved.
  820.  
  821.           DDDD    Define a path for the _R_u_n command to use.
  822.  
  823.           All file operations take a filename as the first argument to
  824.           the prompt on the top line.  The prompt supplies a " to aid
  825.           in typing in the filename.  The filename can also be
  826.           obtained from a cell's label string or string expression.
  827.           In this case, delete the leading " with the backspace key
  828.           and enter a cell name such as _a_2_2 instead.  If the resulting
  829.           string starts with ``|'', the rest of the string is
  830.           interpreted as a UNIX command, as above.
  831.  
  832.         RRRRoooowwww aaaannnndddd CCCCoooolllluuuummmmnnnn CCCCoooommmmmmmmaaaannnnddddssss
  833.           These commands can be used on either rows or columns.  The
  834.           second letter of the command is either a row designator (one
  835.           of the characters _r, ^_B, ^_F, _h, _l) or a column designator
  836.           (one of _c, ^_P, ^_N, _k, _j).  A small menu lists the choices
  837.           for the second letter when you type the first letter of one
  838.           of these commands.  Commands which move or copy cells also
  839.           modify the row and column references in affected cell
  840.           expressions.  The references may be frozen by using the
  841.           _f_i_x_e_d operator or using the $ character in the reference to
  842.           the cell (see below).
  843.  
  844.           iiiirrrr,,,, iiiicccc
  845.                Insert a new row (column) by moving the row (column)
  846.                containing the cell cursor, and all following rows
  847.                (columns), down (right) one row (column).  The new row
  848.                (column) is empty.
  849.  
  850.           aaaarrrr,,,, aaaacccc
  851.                Append a new row (column) immediately following the
  852.  
  853.  
  854.  
  855.      Page 13                                          (printed 3/9/94)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  863.  
  864.  
  865.  
  866.                current row (column).  It is initialized as a copy of
  867.                the current one.
  868.  
  869.           ddddrrrr,,,, ddddcccc
  870.                Delete the current row (column).
  871.  
  872.           pppprrrr,,,, ppppcccc,,,, ppppmmmm
  873.                Pull deleted rows (columns) back into the spreadsheet.
  874.                The last deleted set of cells is put back into the
  875.                spreadsheet at the current location.  _p_r inserts enough
  876.                rows to hold the data.  _p_c inserts enough columns to
  877.                hold the data.  _p_m (merge) does not insert rows or
  878.                columns; it overwrites the cells beginning at the
  879.                current cell cursor location.
  880.  
  881.           vvvvrrrr,,,, vvvvcccc
  882.                Remove expressions from the affected rows (columns),
  883.                leaving only the values which were in the cells before
  884.                the command was executed.
  885.  
  886.           zzzzrrrr,,,, zzzzcccc
  887.                Hide (``zap'') the current row (column).  This keeps a
  888.                row (column) from being displayed but keeps it in the
  889.                data base.  The status of the rows and columns is saved
  890.                with the data base so hidden rows and columns will be
  891.                still be hidden when you reload the spreadsheet.
  892.                Hidden rows or columns are not printed by the _W
  893.                command.
  894.  
  895.           ssssrrrr,,,, sssscccc
  896.                Show hidden rows (columns).  Enter a range of rows
  897.                (columns) to be revealed.  The default is the first
  898.                range of rows (columns) currently hidden.  This command
  899.                ignores the repeat count, if any.
  900.  
  901.           ffff    Set the output format to be used for printing the
  902.                numeric values in each cell in the current column.
  903.                Enter three numbers: the total width in characters of
  904.                the column, the number of digits to follow decimal
  905.                points, and the format type.  Format types are 0 for
  906.                fixed point, 1 for scientific notation, 2 for
  907.                engineering notation, and 3 for dates.  Values are
  908.                rounded off to the least significant digit displayed.
  909.                The total column width affects displays of strings as
  910.                well as numbers.  A preceding count can be used to
  911.                affect more than one column.  This command has only a
  912.                column version (no second letter).
  913.  
  914.           @@@@mmmmyyyyrrrroooowwww,,,, @@@@mmmmyyyyccccoooollll
  915.                Are functions that return the row or column of the
  916.                current cell respectively.  ex: The cell directly above
  917.                a cell in the D column could then be accessed by
  918.  
  919.  
  920.  
  921.      Page 14                                          (printed 3/9/94)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  929.  
  930.  
  931.  
  932.                @nval("d",@myrow-1).  NOTE: @myrow and @mycol can't be
  933.                used in specifying ranges.
  934.  
  935.         RRRRaaaannnnggggeeee CCCCoooommmmmmmmaaaannnnddddssss
  936.           Range operations affect a rectangular region on the screen
  937.           defined by the upper left and lower right cells in the
  938.           region.  All of the commands in this class start with a
  939.           slash; the second letter of the command indicates which
  940.           command.  A small menu lists the choices for the second
  941.           letter when you type ``/''.  _s_c prompts for needed
  942.           parameters for each command.  Phrases surrounded by square
  943.           brackets in the prompt are informational only and may be
  944.           erased with the backspace key.
  945.  
  946.           Prompts requesting variable names may be satisfied with
  947.           either an explicit variable name, such as _A_1_0, or with a
  948.           variable name previously defined in a /_d command (see
  949.           below).  Range name prompts require either an explicit range
  950.           such as _A_1_0:_B_2_0, or a range name previously defined with a
  951.           /_d command.  A default range shown in the second line is
  952.           used if you omit the range from the command or press the TAB
  953.           key (see below).  The default range can be changed by moving
  954.           the cell cursor via the control commands (^_P, ^_N, ^_B, ^_F) or
  955.           the arrow keys.  The cells in the default range are
  956.           highlighted (using the terminal's standout mode, if
  957.           available).
  958.  
  959.           ////xxxx   Clear a range.  Cells cleared with this command may be
  960.                recalled with any of the _p_u_l_l commands.
  961.  
  962.           ////vvvv   Values only.  This command removes the expressions from
  963.                a range of cells, leaving just the values of the
  964.                expressions.
  965.  
  966.           ////cccc   Copy a source range to a destination range.  The source
  967.                and destination may be different sizes.  The result is
  968.                always one or more full copies of the source.  Copying
  969.                a row to a row yields a row.  Copying a column to a
  970.                column yields a column.  Copying a range to anything
  971.                yields a range.  Copying a row to a column or a column
  972.                to a row yields a range with as many copies of the
  973.                source as there are cells in the destination.  This
  974.                command can be used to duplicate a cell through an
  975.                arbitrary range by making the source a single cell
  976.                range such as _b_2_0:_b_2_0.
  977.  
  978.           ////ffff   Fill a range with constant values starting with a given
  979.                value and increasing by a given increment.  Each row is
  980.                filled before moving on to the next row if row order
  981.                recalculation is set.  Column order fills each column
  982.                in the range before moving on to the next column.  The
  983.                start and increment numbers may be positive or
  984.  
  985.  
  986.  
  987.      Page 15                                          (printed 3/9/94)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  995.  
  996.  
  997.  
  998.                negative.  To fill all cells with the same value, give
  999.                an increment of zero.
  1000.  
  1001.           ////dddd   Use this command to assign a symbolic name to a single
  1002.                cell or a rectangular range of cells on the screen.
  1003.                The parameters are the name, surrounded by "", and
  1004.                either a single cell name such as _A_1_0 or a range such
  1005.                as _a_1:_b_2_0.  Names defined in this fashion are used by
  1006.                the program in future prompts, may be entered in
  1007.                response to prompts requesting a cell or range name,
  1008.                and are saved when the spreadsheet is saved with the
  1009.                _P_u_t command.  Names defined must be more than two alpha
  1010.                characters long to differentiate them from a column
  1011.                names, and must not have embedded special characters.
  1012.                Names may include the character ``_'' or numerals as
  1013.                long as they occur after the first three alpha
  1014.                characters.
  1015.  
  1016.           ////llll   Use this command to lock the current cell or a range of
  1017.                cells, i.e make them immune to any type of editing. A
  1018.                locked cell can't be changed in anyway until it is
  1019.                unlocked.
  1020.  
  1021.           ////UUUU   This command is the opposite of the /_l command and thus
  1022.                unlocks a locked cell and makes it editable.
  1023.  
  1024.           ////ssss   This command lists (shows) the currently defined range
  1025.                names.  If there are no defined range names, then a
  1026.                message is given, otherwise it pipes output to _s_o_r_t,
  1027.                then to _l_e_s_s.  If the environment variable PAGER is
  1028.                set, its value is used in place of _l_e_s_s.
  1029.  
  1030.           ////uuuu   Use this command to undefine a previously defined range
  1031.                name.
  1032.  
  1033.           ////FFFF   Use this command to assign a value format string (see
  1034.                the ``F'' cell entry command) to a range of cells.
  1035.  
  1036.         MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss CCCCoooommmmmmmmaaaannnnddddssss
  1037.  
  1038.           QQQQ
  1039.           qqqq
  1040.           ^^^^CCCC   Exit from _s_c.  If you made any changes since the last
  1041.                _G_e_t or _P_u_t, _s_c asks about saving your data before
  1042.                exiting.
  1043.  
  1044.           ^^^^GGGG
  1045.           EEEESSSSCCCC  Abort entry of the current command.
  1046.  
  1047.           ????    Enter an interactive help facility.  Lets you look up
  1048.                brief summaries of the main features of the program.
  1049.                The help facility is structured like this manual page
  1050.  
  1051.  
  1052.  
  1053.      Page 16                                          (printed 3/9/94)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1061.  
  1062.  
  1063.  
  1064.                so it is easy to find more information on a particular
  1065.                topic.
  1066.  
  1067.           !!!!    Shell escape.  _s_c prompts for a shell command to run.
  1068.                End the command line with the RETURN key.  If the
  1069.                environment variable SHELL is defined, that shell is
  1070.                run.  If not, /bin/sh is used.  Giving a null command
  1071.                line starts the shell in interactive mode.  A second
  1072.                ``!'' repeats the previous command.
  1073.  
  1074.           ^^^^LLLL   Redraw the screen.
  1075.  
  1076.           ^^^^RRRR   Redraw the screen with special highlighting of cells to
  1077.                be filled in.  This is useful for finding values you
  1078.                need to provide or update in a form with which you
  1079.                aren't familiar or of which you have forgotten the
  1080.                details.
  1081.  
  1082.                It's also useful for checking a form you are creating.
  1083.                All cells which contain constant numeric values (not
  1084.                the result of a numeric expression) are highlighted
  1085.                temporarily, until the next screen change, however
  1086.                minor.  To avoid ambiguity, the current range (if any)
  1087.                and current cell are not highlighted.
  1088.  
  1089.           ^^^^XXXX   This command is similar to ^_R, but highlights cells
  1090.                which have expressions.  It also displays the
  1091.                expressions in the highlighted cells as left-flushed
  1092.                strings, instead of the numeric values and/or label
  1093.                strings of those cells.  This command makes it easier
  1094.                to check expressions, at least when they fit in their
  1095.                cells or the following cell(s) are blank so the
  1096.                expressions can slop over (like label strings).  In the
  1097.                latter case, the slop over is not cleared on the next
  1098.                screen update, so you may want to type ^_L after the ^_X
  1099.                in order to clean up the screen.
  1100.  
  1101.           @@@@    Recalculates the spreadsheet.
  1102.  
  1103.           ^^^^VVVV   Type, in the command line, the name of the current cell
  1104.                (the one at the cell cursor).  This is useful when
  1105.                entering expressions which refer to other cells in the
  1106.                table.
  1107.  
  1108.           ^^^^WWWW   Type, in the command line, the expression attached to
  1109.                the current cell.  If there is none, the result is
  1110.                ``?''.
  1111.  
  1112.           ^^^^AAAA   Type, in the command line, the numeric value of the
  1113.                current cell, if any.
  1114.  
  1115.           The ^_V, ^_W, and ^_A commands only work when the character
  1116.  
  1117.  
  1118.  
  1119.      Page 17                                          (printed 3/9/94)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1127.  
  1128.  
  1129.  
  1130.           cursor is on the command line and beyond the first
  1131.           character.
  1132.  
  1133.           TTTTAAAABBBB  When the character cursor is on the top line, defines a
  1134.                range of cells via the cursor control commands or the
  1135.                arrow keys.  The range is highlighted, starts at the
  1136.                cell where you typed TAB, and continues through the
  1137.                current cell cursor.  Pressing TAB again causes the
  1138.                highlighted range to be entered into the command line
  1139.                and the highlighting to be turned off.  This is most
  1140.                useful for defining ranges to functions such as @_s_u_m().
  1141.                Pressing ``)'' acts just like typing the TAB key the
  1142.                second time and adds the closing ``)''.  Note that when
  1143.                you give a range command, you don't need to press the
  1144.                first TAB to begin defining a range starting with the
  1145.                current cell.
  1146.  
  1147.         VVVVaaaarrrriiiiaaaabbbblllleeee NNNNaaaammmmeeeessss
  1148.           Normally, a variable name is just the name of a cell, such
  1149.           as _K_2_0.  The value is the numeric or string value of the
  1150.           cell, according to context.
  1151.  
  1152.           When a cell's expression (formula) is copied to another
  1153.           location via _c_o_p_y or _r_a_n_g_e-_c_o_p_y, variable references are by
  1154.           default offset by the amount the formula moved.  This allows
  1155.           the new formula to work on new data.  If cell references are
  1156.           not to change, you can either use the _f_i_x_e_d operator (see
  1157.           below), or one of the following variations on the cell name.
  1158.  
  1159.           _K_2_0  References cell _K_2_0; the reference changes when the
  1160.                formula is copied.
  1161.  
  1162.           $$$$_K$$$$_2_0
  1163.                Always refers to cell _K_2_0; the reference stays fixed
  1164.                when the formula is copied.
  1165.  
  1166.           $$$$_K_2_0 Keeps the column fixed at column K; the row is free to
  1167.                vary.
  1168.  
  1169.           _K$$$$_2_0 Similarly, this fixes the row and allows the column to
  1170.                vary.
  1171.  
  1172.           These conventions also hold on defined ranges.  Range
  1173.           references vary when formulas containing them are copied.
  1174.           If the range is defined with fixed variable references, the
  1175.           references do not change.
  1176.  
  1177.           ffffiiiixxxxeeeedddd
  1178.                To make a variable not change automatically when a cell
  1179.                moves, put the word _f_i_x_e_d in front of the reference,
  1180.                for example: B1 * fixed C3.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.      Page 18                                          (printed 3/9/94)
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1193.  
  1194.  
  1195.  
  1196.         NNNNuuuummmmeeeerrrriiiicccc EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss
  1197.           Numeric expressions used with the ``='' and _e commands have
  1198.           a fairly conventional syntax.  Terms may be constants,
  1199.           variable names, parenthesized expressions, and negated
  1200.           terms.  Ranges may be operated upon with range functions
  1201.           such as sum (@_s_u_m()) and average (@_a_v_g()).  Terms may be
  1202.           combined using binary operators.
  1203.  
  1204.           ----e   Negation.
  1205.  
  1206.           e++++e  Addition.
  1207.  
  1208.           e----e  Subtraction.
  1209.  
  1210.           e****e  Multiplication.
  1211.  
  1212.           e////e  Division.
  1213.  
  1214.           e1%%%%e2
  1215.                e1 mod e2.
  1216.  
  1217.           e^^^^e  Exponentiation.
  1218.  
  1219.           e<<<<e
  1220.           e<<<<====e
  1221.           e====e
  1222.           e!!!!====e
  1223.           e>>>>====e
  1224.           e>>>>e  Relationals: true (1) if and only if the indicated
  1225.                relation holds, else false (0).  Note that ``<='',
  1226.                ``!='', and ``>='' are converted to their ``~()''
  1227.                equivalents.
  1228.  
  1229.           ~~~~e   Boolean operator NOT.
  1230.  
  1231.           e&&&&e  Boolean operator AND.
  1232.  
  1233.           e||||e  Boolean operator OR.
  1234.  
  1235.           @if((((eeee,,,,e,eeee))))
  1236.           e????e::::e
  1237.                Conditional: If the first expression is true then the
  1238.                value of the second is returned, otherwise the value of
  1239.                the third.
  1240.           Operator precedence from highest to lowest is:
  1241.                -, ~
  1242.                ^
  1243.                *, /
  1244.                +, -
  1245.                <, <=, =, !=, >=, >
  1246.                &
  1247.                |
  1248.  
  1249.  
  1250.  
  1251.      Page 19                                          (printed 3/9/94)
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1259.  
  1260.  
  1261.  
  1262.                ?:
  1263.         BBBBuuuuiiiilllltttt----iiiinnnn RRRRaaaannnnggggeeee FFFFuuuunnnnccccttttiiiioooonnnnssss
  1264.           These functions return numeric values.
  1265.           @@@@ssssuuuummmm(r)           Sum all valid (nonblank) entries in the
  1266.                             region whose two corners are defined by
  1267.                             the two variable names (e.g.  _c_5:_e_1_4) or
  1268.                             the range name specified.
  1269.           @@@@pppprrrroooodddd(r)          Multiply together all valid (nonblank)
  1270.                             entries in the specified region.
  1271.           @@@@aaaavvvvgggg(r)           Average all valid (nonblank) entries in
  1272.                             the specified region.
  1273.           @@@@ccccoooouuuunnnntttt(r)         Count all valid (nonblank) entries in the
  1274.                             specified region.
  1275.           @@@@mmmmaaaaxxxx(r)           Return the maximum value in the specified
  1276.                             region.  See also the multi argument
  1277.                             version of @_m_a_x below.
  1278.           @@@@mmmmiiiinnnn(r)           Return the minimum value in the specified
  1279.                             region.  See also the multi argument
  1280.                             version of @_m_i_n below.
  1281.           @@@@ssssttttddddddddeeeevvvv(r)        Return the sample standard deviation of
  1282.                             the cells in the specified region.
  1283.           @@@@llllooooooookkkkuuuupppp(e,r)
  1284.           @@@@llllooooooookkkkuuuupppp(se,r)     Evaluates the expression then searches
  1285.                             through the range _r for a matching value.
  1286.                             The range should be either a single row or
  1287.                             a single column.  The expression can be
  1288.                             either a string expression or a numeric
  1289.                             expression.  If it is a numeric
  1290.                             expression, the range is searched for the
  1291.                             the last value less than or equal to _e.
  1292.                             If the expression is a string expression,
  1293.                             the string portions of the cells in the
  1294.                             range are searched for an exact string
  1295.                             match.  The value returned is the numeric
  1296.                             value from the next row and the same
  1297.                             column as the match, if the range was a
  1298.                             single row, or the value from the next
  1299.                             column and the same row as the match if
  1300.                             the range was a single column.
  1301.  
  1302.           @@@@hhhhllllooooooookkkkuuuupppp(e,r,n)
  1303.           @@@@hhhhllllooooooookkkkuuuupppp(se,r,n)  Evaluates the expression then searches
  1304.                             through the first row in the range _r for a
  1305.                             matching value.  The expression can be
  1306.                             either a string expression or a numeric
  1307.                             expression.  If it is a numeric
  1308.                             expression, the row is searched for the
  1309.                             the last value less than or equal to _e.
  1310.                             If the expression is a string expression,
  1311.                             the string portions of the cells in the
  1312.                             row are searched for an exact string
  1313.                             match.  The value returned is the numeric
  1314.  
  1315.  
  1316.  
  1317.      Page 20                                          (printed 3/9/94)
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1325.  
  1326.  
  1327.  
  1328.                             value from the same column _n rows below
  1329.                             the match.
  1330.  
  1331.           @@@@vvvvllllooooooookkkkuuuupppp(e,r,n)
  1332.           @@@@vvvvllllooooooookkkkuuuupppp(se,r,n)  Evaluates the expression then searches
  1333.                             through the first column in the range _r
  1334.                             for a matching value.  The expression can
  1335.                             be either a string expression or a numeric
  1336.                             expression.  If it is a numeric
  1337.                             expression, the column is searched for the
  1338.                             the last value less than or equal to _e.
  1339.                             If the expression is a string expression,
  1340.                             the string portions of the cells in the
  1341.                             column are searched for an exact string
  1342.                             match.  The value returned is the numeric
  1343.                             value from the same row _n columns to the
  1344.                             right of the match.
  1345.  
  1346.           @@@@iiiinnnnddddeeeexxxx(e,r)       Use the value of the expression _e to index
  1347.                             into the range _r.  The numeric value at
  1348.                             that position is returned. The value 1
  1349.                             selects the first item in the range, 2
  1350.                             selects the second item, etc.  _R should be
  1351.                             either a single row or a single column.
  1352.  
  1353.           @@@@ssssttttiiiinnnnddddeeeexxxx(e,r)     Use the value of _e to index into the range
  1354.                             _r.  The string value at that position is
  1355.                             returned. The value 1 selects the first
  1356.                             item in the range, 2 selects the second
  1357.                             item, etc.  The range should be either a
  1358.                             single row or a single column.
  1359.  
  1360.         BBBBuuuuiiiilllltttt----iiiinnnn NNNNuuuummmmeeeerrrriiiicccc FFFFuuuunnnnccccttttiiiioooonnnnssss
  1361.           All of these functions operate on floating point numbers
  1362.           (doubles) and return numeric values.  Most of them are
  1363.           standard system functions more fully described in _m_a_t_h(3).
  1364.           The trig functions operate with angles in radians.
  1365.  
  1366.           @@@@ssssqqqqrrrrtttt(e)          Return the square root of _e.
  1367.  
  1368.           @@@@eeeexxxxpppp(e)           Return the exponential function of _e.
  1369.  
  1370.           @@@@llllnnnn(e)            Return the natural logarithm of _e.
  1371.  
  1372.           @@@@lllloooogggg(e)           Return the base 10 logarithm of _e.
  1373.  
  1374.           @@@@fffflllloooooooorrrr(e)         Return the largest integer not greater
  1375.                             than _e.
  1376.  
  1377.           @@@@cccceeeeiiiillll(e)          Return the smallest integer not less than
  1378.                             _e.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.      Page 21                                          (printed 3/9/94)
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1391.  
  1392.  
  1393.  
  1394.           @@@@rrrrnnnndddd(e)           Round _e to the nearest integer.  default:
  1395.                             round-to-even (banker's round), *.5 will
  1396.                             round to the closest even number; 'set
  1397.                             rndinfinity' will round *.5 up to the next
  1398.                             integer.
  1399.  
  1400.           @@@@rrrroooouuuunnnndddd(e,n)       Round _e to _n decimal places.  n may be
  1401.                             positive to round off the right side of
  1402.                             the decimal, and negative to round off the
  1403.                             left side. See @rnd(e) above for rounding
  1404.                             types.
  1405.  
  1406.           @@@@aaaabbbbssss(e)
  1407.           @@@@ffffaaaabbbbssss(e)          Return the absolute value of _e.
  1408.           @@@@ppppoooowwww(e1,e2)       Return _e_1 raised to the power of _e_2.
  1409.           @@@@hhhhyyyyppppooootttt(e1,e2)     Return sqrt(e1*e1+e2*e2), taking
  1410.                             precautions against unwarranted overflows.
  1411.           ppppiiii  @@@@ppppiiii           A constant quite close to pi.
  1412.           @@@@ddddttttrrrr(e)           Convert _e in degrees to radians.
  1413.           @@@@rrrrttttdddd(e)           Convert _e in radians to degrees.
  1414.           @@@@ssssiiiinnnn(e)
  1415.           @@@@ccccoooossss(e)
  1416.           @@@@ttttaaaannnn(e)           Return trigonometric functions of radian
  1417.                             arguments.  The magnitude of the arguments
  1418.                             are not checked to assure meaningful
  1419.                             results.
  1420.  
  1421.           @@@@aaaassssiiiinnnn(e)          Return the arc sine of _e in the range
  1422.                             -pi/2 to pi/2.
  1423.  
  1424.           @@@@aaaaccccoooossss(e)          Return the arc cosine of _e in the range 0
  1425.                             to pi.
  1426.  
  1427.           @@@@aaaattttaaaannnn(e)          Return the arc tangent of _e in the range
  1428.                             -pi/2 to pi/2.
  1429.  
  1430.           @@@@aaaattttaaaannnn2222(e1,e2)     Returns the arc tangent of _e_1/_e_2 in the
  1431.                             range -pi to pi.
  1432.  
  1433.           @@@@mmmmaaaaxxxx(e1,e2,...)   Return the maximum of the values of the
  1434.                             expressions.  Two or more expressions may
  1435.                             be specified.  See also the range version
  1436.                             of @_m_a_x above.
  1437.  
  1438.           @@@@mmmmiiiinnnn(e1,e2,...)   Return the minimum of the values of the
  1439.                             expressions.  Two or more expressions may
  1440.                             be specified.  See also the range version
  1441.                             of @_m_i_n above.
  1442.  
  1443.           @@@@ssssttttoooonnnn(se)         Convert string expression _s_e to a numeric
  1444.                             value.
  1445.  
  1446.  
  1447.  
  1448.  
  1449.      Page 22                                          (printed 3/9/94)
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1457.  
  1458.  
  1459.  
  1460.           @@@@eeeeqqqqssss(se1,se2)     Return 1 if string expression _s_e_1 has the
  1461.                             same value as string expression _s_e_2, 0
  1462.                             otherwise.
  1463.  
  1464.           @@@@nnnnvvvvaaaallll(se,e)       Return the numeric value of a cell
  1465.                             selected by name.  String expression _s_e
  1466.                             must evaluate to a column name (``A''-
  1467.                             ``AE'') and _e must evaluate to a row
  1468.                             number (0-199). If _s_e or _e is out of
  1469.                             bounds, or the cell has no numeric value,
  1470.                             the result is 0.  You can use this for
  1471.                             simple table lookups.  Be sure the table
  1472.                             doesn't move unexpectedly!  See also
  1473.                             @_s_v_a_l() below.
  1474.  
  1475.         SSSSttttrrrriiiinnnngggg EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss
  1476.           String expressions are made up of constant strings
  1477.           (characters surrounded by double quotation marks), variables
  1478.           (cell names, which refer to the cells's label strings or
  1479.           expressions), and string functions.  Note that string
  1480.           expressions are only allowed when entering a cell's label
  1481.           string, not its numeric part.  Also note that string
  1482.           expression results may be left or right flushed or centered,
  1483.           according to the type of the cell's string label.
  1484.  
  1485.           ####    Concatenate strings.  For example, the string
  1486.                expression
  1487.  
  1488.                     A0 # "zy dog"
  1489.  
  1490.                displays the string ``the lazy dog'' in the cell if the
  1491.                value of _A_0's string is ``the la''.
  1492.  
  1493.         BBBBuuuuiiiilllltttt----iiiinnnn SSSSttttrrrriiiinnnngggg FFFFuuuunnnnccccttttiiiioooonnnnssss
  1494.  
  1495.           @@@@ssssuuuubbbbssssttttrrrr(se,e1,e2) Extract and return from string expression
  1496.                             _s_e the substring indexed by character
  1497.                             number _e_1 through character number _e_2
  1498.                             (defaults to the size of _s_e if beyond the
  1499.                             end of it).  If _e_1 is less than 1 or
  1500.                             greater than _e_2, the result is the null
  1501.                             string.  For example,
  1502.  
  1503.                                  @substr ("Nice jacket", 4, 7)
  1504.  
  1505.                             returns the string ``e jac''.
  1506.  
  1507.           @@@@ffffmmmmtttt(se,e)        Convert a number to a string.  The
  1508.                             argument _s_e must be a valid _p_r_i_n_t_f(3)
  1509.                             format string.  _e is converted according
  1510.                             to the standard rules.  For example, the
  1511.                             expression
  1512.  
  1513.  
  1514.  
  1515.      Page 23                                          (printed 3/9/94)
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1523.  
  1524.  
  1525.  
  1526.                                  @fmt ("**%6.3f**", 10.5)
  1527.  
  1528.                             yields the string ``**10.500**''.  _e is a
  1529.                             double, so applicable formats are e, E, f,
  1530.                             g, and G.  Try ``%g'' as a starting point.
  1531.  
  1532.           @@@@ssssvvvvaaaallll(se,e)       Return the string value of a cell selected
  1533.                             by name.  String expression _s_e must
  1534.                             evaluate to a column name (``A''-``AE'')
  1535.                             and _e must evaluate to a row number (0-
  1536.                             199). If _s_e or _e is out of bounds, or the
  1537.                             cell has no string value, the result is
  1538.                             the null string.  You can use this for
  1539.                             simple table lookups.  Be sure the table
  1540.                             doesn't move unexpectedly!
  1541.  
  1542.           @@@@uuuuppppppppeeeerrrr(e)         and @@@@lllloooowwwweeeerrrr(e) will case the string
  1543.                             expression to upper or lower.
  1544.  
  1545.           @@@@ccccaaaappppiiiittttaaaallll(e)       will convert the first letter of words in
  1546.                             a string into upper case and other letters
  1547.                             to lower case (the latter if all letters
  1548.                             of the string are upper case).
  1549.  
  1550.           @@@@uuuuppppppppeeeerrrr(e)         and @@@@lllloooowwwweeeerrrr(e) will case the string
  1551.                             expression to upper or lower.
  1552.  
  1553.           @@@@ccccaaaappppiiiittttaaaallll(e)       will convert the first letter of words in
  1554.                             a string into upper case.
  1555.  
  1556.           @@@@eeeexxxxtttt(se,e)        Call an external function (program or
  1557.                             script).  The purpose is to allow
  1558.                             arbitrary functions on values, e.g. table
  1559.                             lookups and interpolations.  String
  1560.                             expression _s_e is a command or command line
  1561.                             to call with _p_o_p_e_n(3).  The value of _e is
  1562.                             converted to a string and appended to the
  1563.                             command line as an argument.  The result
  1564.                             of @_e_x_t() is a string: the first line
  1565.                             printed to standard output by the command.
  1566.                             The command should emit exactly one output
  1567.                             line.  Additional output, or output to
  1568.                             standard error, messes up the screen.
  1569.                             @_e_x_t() returns a null string and prints an
  1570.                             appropriate warning if external functions
  1571.                             are disabled, _s_e is null, or the attempt
  1572.                             to run the command fails.
  1573.  
  1574.                             External functions can be slow to run, and
  1575.                             if enabled are called at each screen
  1576.                             update, so they are disabled by default.
  1577.                             You can enable them with ^_T when you
  1578.  
  1579.  
  1580.  
  1581.      Page 24                                          (printed 3/9/94)
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1589.  
  1590.  
  1591.  
  1592.                             really want them called.
  1593.  
  1594.                             A simple example:
  1595.  
  1596.                                  @ext ("echo", a1)
  1597.  
  1598.                             You can use @_s_t_o_n() to convert the @_e_x_t()
  1599.                             result back to a number.  For example:
  1600.  
  1601.                                  @ston (@ext ("form.sc.ext", a9 + b9))
  1602.  
  1603.                             Note that you can built a command line
  1604.                             (including more argument values) from a
  1605.                             string expression with concatenation.  You
  1606.                             can also "hide" the second argument by
  1607.                             ending the command line (first argument)
  1608.                             with `` #'' (shell comment).
  1609.  
  1610.           @@@@ccccoooollllttttooooaaaa(e)        Returns a string name for a column from
  1611.                             the numeric argument.  For example:
  1612.  
  1613.                                  @coltoa(@mycol-1)
  1614.                                  @nval(coltoa(@mycol-1), @myrow+1)
  1615.  
  1616.  
  1617.  
  1618.         BBBBuuuuiiiilllltttt----iiiinnnn FFFFiiiinnnnaaaannnncccciiiiaaaallll FFFFuuuunnnnccccttttiiiioooonnnnssss
  1619.           Financial functions compute the mortgage (or loan) payment,
  1620.           future value, and the present value functions.  Each accepts
  1621.           three arguments, an amount, a rate of interest (per period),
  1622.           and the number of periods.  These functions are the same as
  1623.           those commonly found in other spreadsheets and financial
  1624.           calculators
  1625.  
  1626.           @@@@ppppmmmmtttt(e1,e2,e3)    @_p_m_t(60000,.01,360) computes the monthly
  1627.                             payments for a $60000 mortgage at 12%
  1628.                             annual interest (.01 per month) for 30
  1629.                             years (360 months).
  1630.  
  1631.           @@@@ffffvvvv(e1,e2,e3)     @_f_v(100,.005,36) computes the future value
  1632.                             for of 36 monthly payments of $100 at 6%
  1633.                             interest (.005 per month).  It answers the
  1634.                             question: "How much will I have in 36
  1635.                             months if I deposit $100 per month in a
  1636.                             savings account paying 6% interest
  1637.                             compounded monthly?"
  1638.  
  1639.           @@@@ppppvvvv(e1,e2,e3)     @_p_v(1000,.015,36) computes the present
  1640.                             value of an a ordinary annuity of 36
  1641.                             monthly payments of $1000 at 18% annual
  1642.                             interest.  It answers the question: "How
  1643.                             much can I borrow at 18% for 30 years if I
  1644.  
  1645.  
  1646.  
  1647.      Page 25                                          (printed 3/9/94)
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1655.  
  1656.  
  1657.  
  1658.                             pay $1000 per month?"
  1659.  
  1660.         BBBBuuuuiiiilllltttt----iiiinnnn DDDDaaaatttteeee aaaannnndddd TTTTiiiimmmmeeee FFFFuuuunnnnccccttttiiiioooonnnnssss
  1661.           Time for _s_c follows the system standard: the number of
  1662.           seconds since 1970.  All date and time functions except
  1663.           @_d_a_t_e() return numbers, not strings.
  1664.  
  1665.           @@@@nnnnoooowwww              Return the current time encoded as the
  1666.                             number of seconds since the beginning of
  1667.                             the epoch (December 31, 1969, midnight,
  1668.                             GMT.)
  1669.  
  1670.           @@@@ddddttttssss(e1,e2,e3)    @_d_t_s(9,14,1988) converts the date
  1671.                             September 14, 1988 to the number of
  1672.                             seconds from the epoch to the first second
  1673.                             of 9/14/88, local time.  For example,
  1674.                             @_d_a_t_e(@_d_t_s(12,14,1976)) yields
  1675.  
  1676.                                  _T_u_e _D_e_c _1_4 _0_0:_0_0:_0_0 _1_9_7_6
  1677.  
  1678.                             The month should be range from  1 to 12,
  1679.                             the day should range from 1 to the number
  1680.                             of days in the specified month, and the
  1681.                             year should range from 1970 to 1999.
  1682.  
  1683.           @@@@ttttttttssss(e1,e2,e3)    @_t_t_s(8,20,45) converts the time 8:40:45 to
  1684.                             the number of seconds since midnight, the
  1685.                             night before.  The hour should range from
  1686.                             0 to 23; the minutes and seconds should
  1687.                             range from 0 to 59.
  1688.  
  1689.           The following functions take the time in seconds (e.g. from
  1690.           @_n_o_w) as an argument and return the specified value.  The
  1691.           functions all convert from GMT to local time.
  1692.  
  1693.           @@@@ddddaaaatttteeee(e)          Convert the time in seconds to a date
  1694.                             string 24 characters long in the following
  1695.                             form:
  1696.  
  1697.                                  _S_u_n _S_e_p _1_6 _0_1:_0_3:_5_2 _1_9_7_3
  1698.  
  1699.                             Note that you can extract parts of this
  1700.                             fixed-format string with @_s_u_b_s_t_r().
  1701.  
  1702.           @@@@yyyyeeeeaaaarrrr(e)          Return the year.  Valid years begin with
  1703.                             1970.  The last legal year is system
  1704.                             dependent.
  1705.  
  1706.           @@@@mmmmoooonnnntttthhhh(e)         Return the month, encoded as 1 (January)
  1707.                             to 12 (December).
  1708.  
  1709.           @@@@ddddaaaayyyy(e)           Return the day of the month, encoded as 1
  1710.  
  1711.  
  1712.  
  1713.      Page 26                                          (printed 3/9/94)
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1721.  
  1722.  
  1723.  
  1724.                             to 31.
  1725.  
  1726.           @@@@hhhhoooouuuurrrr(e)          Return the number of hours since midnight,
  1727.                             encoded as 0 to 23.
  1728.  
  1729.           @@@@mmmmiiiinnnnuuuutttteeee(e)        Return the number of minutes since the
  1730.                             last full hour, encoded as 0 to 59.
  1731.  
  1732.           @@@@sssseeeeccccoooonnnndddd(e)        Return the number of seconds since the
  1733.                             last full minute, encoded as 0 to 59.
  1734.  
  1735.         SSSSpppprrrreeeeaaaaddddsssshhhheeeeeeeetttt UUUUppppddddaaaatttteeee
  1736.           Re-evaluation of spreadsheet expressions is done by row or
  1737.           by column depending on the selected calculation order.
  1738.           Evaluation is repeated up to _i_t_e_r_a_t_i_o_n_s times for each
  1739.           update if necessary, so forward references usually work as
  1740.           expected.  See _s_e_t above.  If stability is not reached after
  1741.           ten iterations, a warning is printed.  This is usually due
  1742.           to a long series of forward references, or to unstable
  1743.           cyclic references (for example, set _A_0's expression to
  1744.           ``A0+1'').
  1745.  
  1746.           @@@@nnnnuuuummmmiiiitttteeeerrrr          Returns the number of iterations performed
  1747.                             so far.
  1748.  
  1749.      FFFFIIIILLLLEEEESSSS
  1750.           /usr/local/lib/sc-6.21/tutorial.sc      tutorial spreadsheet
  1751.  
  1752.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1753.           bc(1), dc(1), crypt(1), psc(1)
  1754.  
  1755.      BBBBUUUUGGGGSSSS
  1756.           Top-to-bottom, left-to-right evaluation of expressions is
  1757.           silly.  A proper following of the dependency graph with
  1758.           (perhaps) recourse to relaxation should be implemented.
  1759.  
  1760.           Only one previous value is saved from any call of @_e_x_t().
  1761.           If it is used more than once in a spreadsheet and external
  1762.           functions are enabled and later disabled, the last returned
  1763.           value pops up in several places.
  1764.  
  1765.           On some systems, if the cell cursor is in column 0 with
  1766.           topline enabled (so the current cell is highlighted), or if
  1767.           any cell in column 0 is highlighted, the corresponding row
  1768.           number gets displayed and then blanked during a screen
  1769.           refresh.  This looks like a bug in _c_u_r_s_e_s.
  1770.  
  1771.           Many commands give no indication (a message or beep) if they
  1772.           have null effect.  Some should give confirmation of their
  1773.           action, but they don't.
  1774.  
  1775.      AAAAUUUUTTTTHHHHOOOORRRRSSSS
  1776.  
  1777.  
  1778.  
  1779.      PPPPaaaaggggeeee 22227777                                          ((((pppprrrriiiinnnntttteeeedddd 3333////9999////99994444))))
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.      SSSSCCCC 6666....22221111 ((((1111))))               UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV               SSSSCCCC 6666....22221111 ((((1111))))
  1787.  
  1788.  
  1789.  
  1790.           This is a much modified version of a public domain spread
  1791.           sheet originally authored by James Gosling, and subsequently
  1792.           modified and posted to USENET by Mark Weiser under the name
  1793.           _v_c.  The program was subsequently renamed _s_c, and further
  1794.           modified by numerous contributors, Jeff Buhrt of Proslink,
  1795.           Inc.  ({sequent, uunet}!sawmill!prslnk!buhrt) and Robert
  1796.           Bond of Sequent, prominent among them.  Other contributors
  1797.           include: Tom Anderson, Glenn T. Barry, Gregory Bond, Stephen
  1798.           (Steve) M. Brooks, Peter Brower, John Campbell, Lawrence
  1799.           Cipriani, Jim Clausing, Dave Close, Chris Cole, Jonathan
  1800.           Crompron, David I. Dalva, Glen Ditchfield, Sam Drake, James
  1801.           P. Dugal, Paul Eggert, Andy Fyfe, Jack Goral, Piercarlo
  1802.           "Peter" Grandi, Henk Hesselink, Jeffrey C Honig, Kurt
  1803.           Horton, Jonathan I. Kamens, Peter King, Tom Kloos, Casey
  1804.           Leedom, Jay Lepreau, Dave Lewis, Rick Linck, Soren
  1805.           Lundsgaard, Tad Mannes, Rob McMahon, Chris Metcalf, Mark
  1806.           Nagel, Ulf Noren, Marius Olafsson, Gene H. Olson, Henk P.
  1807.           Penning, Rick Perry, Larry Philps, Eric Putz, Jim
  1808.           Richardson, Michael Richardson, R. P. C. Rodgers, Kim
  1809.           Sanders, Mike Schwartz, Alan Silverstein, Lowell Skoog, Herr
  1810.           Soeryantono, Tim Theisen, Tom Tkacik, Andy Valencia, Adri
  1811.           Verhoef, Rick Walker, Petri Wessman, and Tim Wilson.
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.      Page 28                                          (printed 3/9/94)
  1846.  
  1847.  
  1848.  
  1849.